The present invention relates to modems, and more specifically to the remote control of modems. It finds particular application in the interfacing of application programs to physical devices, particularly but not exclusively in the context of receiver/decoders for digital transmission systems.
The term xe2x80x9creceiver/decoderxe2x80x9d used herein may connote a receiver for receiving either encoded or non-encoded signals, for example, television and/or radio signals, which may be broadcast or transmitted by some other means. The term may also connote a decoder for decoding received signals. Embodiments of such receiver/decoders may include a decoder integral with the receiver for decoding the received signals, for example, in a xe2x80x9cset-top boxxe2x80x9d, such a decoder functioning in combination with a physically separate receiver, or such a decoder including additional functions, such as a web browser, a video recorder, or a television.
The advent of digital transmission systems intended primarily for broadcasting television signals, in particular but not exclusively satellite television systems, has opened up the possibility of using such systems for other purposes. One of these is to provide interactivity with the end user.
As used herein, the term xe2x80x9cdigital transmission systemxe2x80x9d includes any transmission system for transmitting or broadcasting for example primarily audiovisual or multimedia digital data. Whilst the present invention is particularly applicable to a broadcast digital television system, the invention may also be applicable to a fixed telecommunications network for multimedia internet applications, to a closed circuit television, and so on. The term xe2x80x9cdigital television systemxe2x80x9d includes for example any satellite, terrestrial, cable and other system.
The present invention finds specific application in a broadcast digital television system in which received signals are passed through a receiver to a receiver/decoder and thence to a television set. The receiver/decoder (also known as a set-top-box or STB) decodes a compressed MPEG-type signal into a television signal for the television set. It is controlled by a remote controller handset, through an interface in the receiver/decoder.
One way of providing the interactivity described above is to run an application on the receiver/decoder through which the television signal is received. It is desirable to enable a variety of applications to communicate with a variety of physical devices in a transparent manner. Our co-pending applications PCT/EP97/02115 and PCTIEP97/02116 describe systems in which one or more applications can be downloaded by a set-top-box (STB) and communicate with physical devices in the STB such as parallel and serial interfaces and smartcard readers by means of a device driver for each device and an overall device manager.
Pursuant to the present invention, it has been proposed to provide the capability for a set-top-box to interface with a variety of different signal channels, such as a modem, a serial channel, a parallel channel, an MPEG (compressed and coded video signal) channel, swipe card readers, and so on. The set-top-box includes a virtual machine which includes a run-time engine. The virtual machine is coupled to a device manager which is in turn coupled to the physical interfaces of the various channels via devices and device drivers.
The term MPEG refers to the data transmission standards developed by the International Standards Organisation working group xe2x80x9cMotion Pictures Expert Groupxe2x80x9d and in particular but not exclusively the MPEG-2 standard developed for digital television applications and set out in the documents ISO 13818-1, ISO 13818-2, ISO 13818-3 and ISO 13818-4. In the context of the present patent application, the term includes all variants, modifications or developments of MPEG formats applicable to the field of digital data transmission.
As noted above, one of the channels is preferably a modem. The main object of the present invention is to provide improved control of such a modem. This is achieved by providing an improved device driver for controlling the modem. For present purposes, the precise nature of any distinctions between devices and device drivers is not important, and the term xe2x80x9cdevice driverxe2x80x9d as used herein should be construed to include any form of interface between hardware and an application, unless the context requires otherwise.
According to the invention there is provided a device driver for controlling and communicating with a modem, comprising a buffer memory for receiving and storing messages from the modem, a control memory for storing control parameters, and a logic unit for controlling the device driver and the flow of messages, wherein the logic unit includes a comparator for matching patterns stored in the control memory against messages stored in the buffer memory to generate a signal for sending to a device manager coupled to the device driver.
The device manager will usually be arranged to control a plurality of device drivers, and pass messages between the device drivers and one or more applications, but the term xe2x80x9cdevice managerxe2x80x9d is intended to encompass any entity capable of controlling the device driver, it may be a controlling application itself. Further significant features of the invention will become apparent from the following detailed description and claims.
The apparatus is most preferably implemented as a device driver in a receiver/decoder, for example for a digital transmission system as described in our co-pending applications PCT/EP97/02106-02117. In such an implementation, the device driver can operate under the control of an application, via the device manager, providing a convenient and flexible arrangement for controlling the device driver. The application is preferably run in an interpreted language and the device driver is preferably compiled.
Preferably, the comparator compares the stored patterns against a predeteimined final length of the message.
The patterns may be of a plurality of types and there may be a plurality of patterns of the same type. Such pattern types may comprise Events, ACKs (positive acknowledgements), and NACKs (negative acknowledgements), the generated signal indicating the type of pattern matched.
The device driver may be arranged to send the signal to the device manager by adding it to the message received through the modem. Commands may be passed between the device driver and the device manager in the form of Calls, which set up parameters in the device driver, IOs, which send control signals and data to the device drivers, and Events, which signal detection of patterns or message reception or transmission problems to the device manager. One form of Call command comprises at least one pattern setting command for defining one or more patterns to be searched for by the comparator.
There are preferably 3 sub-types of pattern setting command defining patterns to be searched for, one pattern setting command for each pattern type. The or at least one pattern setting command may be arranged to define a plurality of patterns to be matched, each pattern having an associated event signal to be generated on detection of the corresponding pattern.
The patterns to be searched for may be stored in respective sub-areas of the control memory. Alternatively, the patterns to be searched for may be stored in a single continuous area of the control memory.
In one embodiment, on a plurality of matches occurring, only the last match is acted on. Alternatively, on a plurality of matches occurring, the type is indicated according to a predetermined priority sequence between the different types of match.
Functions of the device driver may be implemented in hardware, for example in a dedicated integrated circuit; this may provide enhanced speed of operation. Preferably, however, at least some of the device driver is implemented in software, preferably run by processing means which runs the application; this allows greater flexibility, requires less components, and allows the device driver to be updated more readily.
The present invention extends to a method of controlling and communicating with a modem using a device driver comprising a buffer memory and a control memory, said method comprising the steps of:
receiving and storing messages from the modem in said buffer memory;
storing control parameters in said control memory, and
matching patterns stored in the control memory against messages stored in the buffer memory to generate a signal for sending to a device manager coupled to the device driver.
Any of the above features may be combined together in any appropriate combination. Apparatus features may be applied to method aspects and vice versa.